<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class SpelerModel extends CI_Model {

	function __construct(){
		parent::__construct();
		//$this->load->library('Seizoen');
	}

	private function getArrayFromRows($result){
		if($result->num_rows() > 0){
    		$return = array();
    		foreach($result->result() as $object){
    			$speler = new SpelerClass();
    			$speler->Id = $object->spelerid;
                        $speler->Inschrijving = $object->spelerploegseizoenid;
    			$speler->Naam = $object->naam;
                        $speler->Voornaam = $object->voornaam;
                        $speler->Nummer = $object->nummer;
                        $speler->Positie = $object->positie;
                        $speler->Email = $object->email;
                        $speler->Geboortedatum = $object->geboortedatum;
                        $speler->Gewicht = $object->gewicht;
                        $speler->Lengte = $object->lengte;
    			$return[] = $speler;
    		}

    		return $return;
    	} else {
    		return null;
    	}
	}


	
    function SelectAll(){
    	$query = "select * from speler left join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler where (speler.deleted = 0)";
    	$result = $this->db->query($query);
    	return $this->getArrayFromRows($result);
    	
    }

    function SelectById($id,$seizoen){
    	$query = "select * from speler inner join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler inner join ploegseizoen on ploegseizoen.ploegseizoenid = spelerploegseizoen.ploegseizoen where (speler.deleted = 0 and spelerploegseizoen.deleted = 0) and speler.spelerid = ? and ploegseizoen.seizoen = ?";
    	return $this->getArrayFromRows($this->db->query($query,array($id,$seizoen)));
    }
    function SelectByEmail($email,$seizoen){
    	$query = "select * from speler inner join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler inner join ploegseizoen on ploegseizoen.ploegseizoenid = spelerploegseizoen.ploegseizoen where (speler.deleted = 0 and spelerploegseizoen.deleted = 0) and speler.email = ? and ploegseizoen.seizoen = ?";
    	return $this->getArrayFromRows($this->db->query($query,array($email,$seizoen)));
    }

    function SelectBySeizoen($seizoen){
        $query = "select * from speler inner join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler inner join ploegseizoen on ploegseizoen.ploegseizoenid = spelerploegseizoen.ploegseizoen where (speler.deleted = 0 and spelerploegseizoen.deleted = 0) and ploegseizoen.seizoen = ?";
        return $this->getArrayFromRows($this->db->query($query,array($seizoen)));
    }
    
    function SelectNotInSeizoen($seizoen){
        $query = "select * from speler left join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler where (speler.deleted <> 1 and spelerploegseizoen.deleted <> 1) and spelerid not in (select spelerid from speler inner join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler inner join ploegseizoen on spelerploegseizoen.ploegseizoen = ploegseizoen.ploegseizoenid where ploegseizoen.seizoen = ? and ploegseizoen.deleted <> 1 and spelerploegseizoen.deleted <> 1 and speler.deleted <> 1)";
        return $this->getArrayFromRows($this->db->query($query,array($seizoen)));
    }

    function Insert($naam,$voornaam,$email,$lengte,$gewicht,$geboortedatum){

    	$query = "insert into speler (naam,voornaam,email,lengte,gewicht,geboortedatum) values (?,?,?,?,?,?)";
    	$this->db->query($query,array($naam,$voornaam,$email,$lengte,$gewicht,$geboortedatum));
        return $this->db->insert_id();
    }

    function Delete($id){
    	$query = "update speler left join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler set spelerploegseizoen.deleted = 1, speler.deleted = 1 where spelerid = ?";
    	$return = $this->db->query($query,array($id));
    	return $return;
    }
    
    function SetPassword($email,$password){
        $password = sha1($password);
        $query = "update speler set wachtwoord = ? where email = ? and deleted <> 1";
        return $this->db->query($query,array($password,$email));
    }
    
    function GetPassword($email){
        $query = "select wachtwoord from speler where email = ? and deleted <> 1";
        $result = $this->db->query($query,array($email));
        $result = $result->result();
        if(isset($result[0])){
            $result = $result[0];
            return $result->wachtwoord;
        }
        else{
            return null;
        }
        
    }
    
    
    
    function Update($id,$naam,$voornaam,$email,$nummer,$positie,$inschrijving,$lengte,$gewicht,$geboortedatum){
        //die("$id,$naam,$voornaam,$email,$nummer,$positie,$inschrijving,$lengte,$gewicht,$geboortedatum");
        $query = "update speler inner join spelerploegseizoen on speler.spelerid = spelerploegseizoen.speler set naam = ?, voornaam = ?, email = ?,positie = ?, nummer = ?,lengte = ?, gewicht = ?, geboortedatum = ? where spelerid = ? and spelerploegseizoenid = ?";
        return $this->db->query($query,array($naam,$voornaam,$email,$positie,$nummer,$lengte,$gewicht,$geboortedatum,$id,$inschrijving));
    }
    
    
	
}
